import { defineStore } from 'pinia'

interface UserInfoProp {
  nickName: string
  avatarUrl: string
}
// defineStore 方法有两个参数，第一个参数是模块化名字（相当于ID，不能重复）
const useAuth = defineStore({
  id: 'authInfo',
  // 存放模块的变量
  state: () => ({
    userInfo: {
      nickName: '',
      avatarUrl: ''
    },
    isLogin: false
  }),
  // 可以通过actions 方法，改变 state 里面的值
  actions: {
    login() {
      this.isLogin = true
    },
    logout() {
      this.isLogin = false
    },
    setUserInfo(userInfo: UserInfoProp) {
      this.userInfo = userInfo
    }
  },
  getters:{ // 相当于vue的计算属性，可以缓存数据

  },
})
export { useAuth }
